创建时间: | 2018/3/19 13:43 |
来源: | http://blog.csdn.net/fengrunche/article/details/52305748 |
参考自《Java数据结构与算法》
1)中序遍历:最常用的一种遍历方法
2)前序遍历:
3)后序遍历:
2)删除节点只有一个子节点:只有一个左子节点和只有一个右子节点
3)删除节点有两个子节点:这种情况比较复杂,需要寻找后继节点,即比要删除的节点的关键值次高的节点是它的后继节点。
说得简单一些,后继节点就是比要删除的节点的关键值要大的节点集合中的最小值。
得到后继节点的代码如下:
b)如果后继节点为要删除节点的右子节点的左后代:
中序遍历:91232
50 52
58248455580
666777
888999
中序非递归遍历:9 12
32 50 5258248
455580
666777
888999
前序遍历:52 12
9 50 3258058
248 455
888 666
777 999
前序非递归遍历:52 12
9 50 3258058
248 455
888 666
777 999
后序遍历:9 32
50 12 45524858
777 666
999 888
580 52
后序非递归遍历:9 32
50 12 45524858
777 666
999 888
580 52
32
null
最小值:9
中序遍历:9 12
32 50 58248455580
666777
888999